home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Development / Source / tarsrc Folder / tar.c < prev    next >
C/C++ Source or Header  |  1992-11-04  |  2KB  |  95 lines

  1. /*
  2.  * Macintosh TAR
  3.  *
  4.  * Written by Craig Ruff
  5.  *
  6.  * Main routine and global variables.
  7.  */
  8.  
  9. #include "tar.h"
  10. #include <SegLoad.h>
  11. #include <GestaltEqu.h>
  12.  
  13. /*
  14.  * Global variable declarations
  15.  */
  16. Boolean doneFlag = false;    /* Quit item selected? */
  17. Boolean ignorez = false;    /* Ignore zero blocks */
  18. Boolean    pOpen = false;        /* Printer open? */
  19. Boolean reblock = false;    /* Read enough for a full block size buffer */
  20.  
  21. THPrint    prRecHdl;        /* Printer record (when printing) */
  22.  
  23. char    header[128];        /* Common header for listings */
  24.  
  25. main() {
  26.     WindowPtr    wind;
  27.     EventRecord    e;
  28.     long        response;
  29.  
  30.     /*
  31.      * Standard Mac Initializations
  32.      */
  33.     InitGraf(&qd.thePort);
  34.     InitFonts();
  35.     FlushEvents(everyEvent, 0);
  36.     InitWindows();
  37.     InitMenus();
  38.     TEInit();
  39.     InitDialogs(nil);
  40.     InitCursor();
  41.  
  42.     if (
  43.         (Gestalt(gestaltSystemVersion, &response) != noErr) ||
  44.         ((response & 0xffff) < 0x0605)
  45.     ) {
  46.         VersionAlert();
  47.         ExitToShell();
  48.     }
  49.  
  50.     GetPreferences();
  51.     if (MenuInit())
  52.         ExitToShell();
  53.  
  54.     if ((prRecHdl = (THPrint) NewHandle(sizeof(TPrint))) == nil) {
  55.         OSAlert("\pmain", "\pNewHandle returned nil", nil, MemError());
  56.         ExitToShell();
  57.     }
  58.  
  59.     sprintf(header, "T     Size Date              Name%*s", 40, "");
  60.     if (!CmdFile())
  61.         do {
  62.             /* Should never have a window open while a DA is running */
  63.             if (!menusOK && (FrontWindow() == nil))
  64.                 DDaMenus();
  65.     
  66.             if (WaitNextEvent(everyEvent, &e, 20L, nil))
  67.                 switch (e.what) {
  68.                 case mouseDown:
  69.                     switch (FindWindow(e.where, &wind)) {
  70.                     case inSysWindow:
  71.                         SystemClick(&e, wind);
  72.                         break;
  73.     
  74.                     case inMenuBar:
  75.                         MenuCmd(MenuSelect(e.where));
  76.                         break;
  77.     
  78.                     }
  79.                     break;
  80.     
  81.                 case keyDown:
  82.                 case autoKey:
  83.                     if (e.modifiers & cmdKey)
  84.                         MenuCmd(MenuKey(e.message & charCodeMask));
  85.                     break;
  86.                 }
  87.     
  88.         } while (!doneFlag);
  89.  
  90.     if (pOpen)
  91.         PrClose();
  92.  
  93.     ExitToShell();
  94. }
  95.